#pragma once
#include <iostream>
#include <pthread.h>
#include <vector>
#include <unistd.h>

class Mutex
{
    public:
    Mutex()
    {
        pthread_mutex_init(&_mutex,nullptr);
    }

    ~Mutex()
    {
        pthread_mutex_destroy(&_mutex);
    }

    void Lock()
    {
        pthread_mutex_lock(&_mutex);
    }

    void Unlock()
    {
        pthread_mutex_unlock(&_mutex);
    }
    private:
    pthread_mutex_t _mutex;
};

class LockGuard
{
    public:
    LockGuard(Mutex& mutex):_mutex(mutex)//对同一把锁上锁解锁
    {
        _mutex.Lock();
    }
    ~LockGuard()
    {
        _mutex.Unlock();
    }
    private:
    Mutex& _mutex;//引用类型的类成员
};
